<!DOCTYPE html>
<html lang="zh_CN">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<!--#include file="meta.htm"-->
<title>铜豌豆 Linux -- 使用技巧 -- apng 动画 PNG 图片格式相关工具</title>
    <!-- 包含头部信息适应不同设备 -->
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 包含bootstrap 样式表-->
  <link rel="stylesheet" href="https://cdn.atzlinux.com/bootstrap-4.3.1-dist/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<!--#include file="header.htm"-->
<hr>
<table width="100%">
<tr>
<td><h2>使用技巧 -- apng 动画 PNG 图片格式相关工具</h2></td>
<td align="right"><a class="nav-item nav-link" href="https://www.atzlinux.com/skills-tech.htm">技术用户 -- 使用技巧</a></td>
</tr>
</table>
<hr>
<p>
apng 是一种动画图片格式，用多张 png 格式图片合成而成。
</p>
<p>
该格式目前已经被大部分浏览器支持，在网页打开或者用浏览器打开本地 apng 格式文件，都可以看到动画。
但是在本地用图片查看软件，一般只能够看到第一帧。
</p>
<p>
下面用从微信群接收的户外照片为例，简单介绍下 apng 的图片在 铜豌豆 Linux 下的制作过程。
</p>
以下命令均在 命令行终端下进行：
先一次性安装好接下来需要使用的程序软件包：
<p><kbd>apt install imagemagick pngcrush optipng pngnq apngasm apng2gif</kbd></p>
<ol>
	<li>微信群图片格式处理</li>
	从微信群接收 5 张照片，另存到一个目录下。按期望的动画图片顺序，按数字重命名为 1.png 至 5.png。
	照片均需要同样尺寸大小，同样方向拍摄。用同一个手机连拍的照片就可以。
	 Linux 版本微信有时候会把 jpg 格式照片后缀名设置为 png，但是这些照片，实际是 jpg 格式，需要把格式转换为 png 格式。
	<p>
用 file 命令查看照片文件的真正格式：<br>
	<kbd>file 1.png</kbd>
<br>
	1.png: JPEG image data, JFIF standard 1.01, aspect ratio, density 192x192, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=4, xresolution=62, yresolution=70, resolutionunit=2], baseline, precision 8, 1960x1200, components 3
</p>
用 convert 命令转换格式：	<kbd>convert 1.png 1.png.png</kbd>
<br>
转换后再次用 file 命令查看：
<br>
	<kbd>file 1.png.png </kbd>
	<br>
1.png.png: PNG image data, 1960 x 1200, 8-bit/color RGB, non-interlaced
	<li>无损压缩 png 格式</li>
	转换后的 png 格式照片文件比较大，可以用 pngcrush optipng 命令进行无损压缩。
<pre>	
 optipng 1.png.png
** Processing: 1.png.png
1960x1200 pixels, 3x8 bits/pixel, RGB
Input IDAT size = 871632 bytes
Input file size = 872646 bytes

Trying:
  zc = 9  zm = 8  zs = 1  f = 5		IDAT size = 866215
                               
Selecting parameters:
  zc = 9  zm = 8  zs = 1  f = 5		IDAT size = 866215

Output IDAT size = 866215 bytes (5417 bytes decrease)
Output file size = 866917 bytes (5729 bytes = 0.66% decrease)
</pre>
<pre>	
pngcrush 1.png.png 1.png
  Recompressing IDAT chunks in 1.png.png to 1.png
   Total length of data found in critical chunks            =    866272
   Best pngcrush method        =  10 (ws 15 fm 6 zl 9 zs 1) =    904347
CPU time decode 0.177599, encode 1.402171, other 0.004450, total 1.593382 sec	 
</pre>

	<li>有损压缩 png 格式</li>
	如果在无损压缩 png 	格式后，图片尺寸还是比较大，可以继续进行有损压缩。
	<br>
运行	<kbd>pngnq 1.png</kbd>，会生成一个名为 1-nq8.png 的新文件。
	<li>合成 apng 动画文件</li>
对上述照片经过同样的压缩处理后，会得到名为 	1-nq8.png 至 5-nq8.png 的五张照片。
把这些照片重新改名为 1.png 至 5.png，然后运行：
<p><kbd>apngasm apng.png 1.png -z2 8</kbd></p>
<p>
最后生成的  apng.png 文件就是动画图片
</p>
	<li>打开 apng 文件</li>
	在命令行运行 firefox apng.png 可以用火狐浏览器打开图片，可以看到动画。
<p>
把动画文件放到网站上，直接打开效果如下：
</p>
<img src="https://cdn.atzlinux.com/pics/xsw/yts-x-z2-8.png">
	<li> apng 文件转换为 gif 格式</li>
运行	<kbd>apng2gif apng.png</kbd>， 会生成 apng.gif GIF 格式的动画文件。
<pre>
apng2gif yts-x-z2-8.png 

apng2gif 1.8

Reading 'yts-x-z2-8.png'...
5 frames.
295045 colors.
Wu quantization...
Writing 'yts-x-z2-8.gif'...
all done
</pre>
<img src="https://cdn.atzlinux.com/pics/xsw/yts-x-z2-8.gif">
</ol>
<hr>
<ul>
<li>如何查找某个 Windows 下的软件，在 Linux 下的替代软件？<a href="#find-alter">#find-alter</a></li>
<li>设置开机 grub 默认启动操作系统 <a href="#grubcfg">#grubcfg</a></li>
<li>设置自动登录系统（安装 lightdm-autologin-greeter 包方式） <a href="#autologin">#autologin</a>
<li>设置自动登录系统（安装 nodm 软件包方式） <a href="#nodm">#nodm</a></li>
<li>设置自动登录系统（修改 /etc/lightdm/lightdm.conf 方式）<a href="#seatautologin">#seatautologin</a></li>
<li>指纹登录 <a href="#fprint">#fprint</a>
<li>蓝牙 <a href="#bluetooth">#bluetooth</a>
<li>xfce 桌面，使用鼠标中键点击右上角声音图标 <a href="#tunesound">#tunesound</a>
<li>更换登录背景图 <a href="#lightdmback">#lightdmback</a>
<li>设置 WiFi 密码永久有效 <a href="#wifipasswd">#wifipasswd</a>
<li>在 雷鸟 Thunderbird 邮件客户端里面设置打开网址的默认浏览器 <a href="#thunderbird-www">#thunderbird-www</a>
<li>色弱色盲用户 gnome 扩展 <a href="#gnome-colorblind-filters">#gnome-colorblind-filters</a></li>
<li>手机连接 KDE 桌面环境 <a href="#kdeconnect">#kdeconnect</a></li>
</ul>

<!--#include file="footer.htm"-->
</div>
</body>
</html>
